/**
 * 这里重要的细节是 TypeScript 中的条件类型是可分配的。
 * 所以当你在写T extends U且T是联合类型时，实际上发生的是 TypeScript 遍历联合类型T并将条件应用到每个元素上。
 */
export type MyExclude<T, U> = T extends U ? never : T